// 导入compression-webpack-plugin
const CompressionWebpackPlugin = require('compression-webpack-plugin');

module.exports = {
  lintOnSave: false,
  publicPath: './',
  // outputDir: 'dist',
  // assetsDir: 'static',
  productionSourceMap: false,
  chainWebpack(config) {
    config.plugins.delete('prefetch');//默认开启prefetch(预先加载模块)，提前获取用户未来可能会访问的内容 在首屏会把这十几个路由文件，都一口气下载了 所以我们要关闭这个功能模块
    // 对超过10kb的文件gzip压缩
    config.plugin('compressionPlugin').use(
        new CompressionWebpackPlugin({
            test: /\.(js|css|html)$/,// 匹配文件名
            threshold: 10240,
        })
    );
    config.optimization.splitChunks({
      chunks: 'async',// 指明要分割的插件类型, async:异步插件(动态导入),inital:同步插件,all：全部类型
      minSize: 20000,// 文件最小大小,单位bite;即超过minSize有可能被分割；
      minRemainingSize: 0,// webpack5新属性，防止0尺寸的chunk
      maxSize: 0,
      minChunks: 1,
      maxAsyncRequests: 30,// webpack4,5区别较大
      maxInitialRequests: 30,// webpack4,5区别较大
      enforceSizeThreshold: 50000,
      cacheGroups: {
        defaultVendors: {
          test: /[\\/]node_modules[\\/]/,
          priority: -10,
          reuseExistingChunk: true
        },
        default: {
          minChunks: 2,
          priority: -20,
          reuseExistingChunk: true
        }
      }
    })

  },  

  devServer: {
    // host: "0.0.0.0",
    // inline: true,
    port: 8088,
    proxy: {
      //geoserver
      // "/geoserver": {
      //   // 本地
      //   target: "http://192.168.0.122:8080",
      //   // 服务器
      //   // target: "http://172.27.163.47:8001",

      //   changeOrigin: false,
      //   pathRewrite: {
      //     "^/geoserver": "/",
      //   },
      // },
      // "/swagger": {
      //   // 本地
      //   target: "http://192.168.0.122:8355",
      //   // 服务器
      //   // target: "http://172.27.163.47:8355",

      //   changeOrigin: false,
      //   pathRewrite: {
      //     "^/swagger": "/",
      //   },
      // },
      //fuwuqi
      // "/fuwuqi": {
      //   target: "http://mzft0nhk3.neiwangyun.net",
      //   ws: false,
      //   changeOrigin: true,
      //   disableHostCheck: true,
      //   pathRewrite: {
      //     "/fuwuqi": "/",
      //   },
      // },

      // "/dxny": {
      //   // 访问时遇到 /api开头的路径，代理到此服务下
      //   target: "https://l338u31620.zicp.fun/", // 服务器跨域路径
      //   changeOrigin: true, // 开启代理服务器，就会给你代理转发
      //   disableHostCheck: true,
      //   pathRewrite: {
      //     "/dxny": "/",
      //   },
      // },
    },
    client: {
      overlay: false,
    },
    historyApiFallback: {
      index: '/index.html' 
    },

  },
  //报错
  // configureWebpack(config) {
  //   config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true      
  //   /* 压缩打包 */      
  //   config.optimization.splitChunks.chunks = 'all';        
  //   config.optimization.splitChunks.minSize = 1000000;      
  //   config.optimization.splitChunks.maxSize = 3000000;    

  // }
  // chainWebpack(config) {
  //   config.optimization.splitChunks({
  //     chunks: 'async',// 指明要分割的插件类型, async:异步插件(动态导入),inital:同步插件,all：全部类型
  //     minSize: 20000,// 文件最小大小,单位bite;即超过minSize有可能被分割；
  //     minRemainingSize: 0,// webpack5新属性，防止0尺寸的chunk
  //     maxSize: 0,
  //     minChunks: 1,
  //     maxAsyncRequests: 30,// webpack4,5区别较大
  //     maxInitialRequests: 30,// webpack4,5区别较大
  //     enforceSizeThreshold: 50000,
  //     cacheGroups: {
  //       defaultVendors: {
  //         test: /[\\/]node_modules[\\/]/,
  //         priority: -10,
  //         reuseExistingChunk: true
  //       },
  //       default: {
  //         minChunks: 2,
  //         priority: -20,
  //         reuseExistingChunk: true
  //       }
  //     }
  //   })
  // },

};





